package com.ahwei.product.api.feign;

import com.ahwei.common.rest.base.R;
import com.ahwei.product.api.dto.ProductDto;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * <p>
 * 这是一个Java文件！
 * </p>
 *
 * @author： ahWei
 * @email：ahwei163@qq.com
 * @since： 2022-05-26 16:56:48
 * @FeignClient 声明这是一个OpenFeign客户端,name参数是nacos中注册的服务名
 */
@FeignClient(name="shop-product-service")
public interface RemoteProductService {
    /**
     * 根据id获取数据
     * @param id ·
     * @return ·
     */
    @GetMapping("/api/product/{id}")
    R<ProductDto> getById(@PathVariable("id") Long id);

    /***
     * 减少库存
     * 注意：这里需要@RequestParam("pid")注解，否则会出错。
     * @param productId ·
     * @param quantity ·
     */
    @PostMapping("/api/product/reduceInventory")
    void reduceInventory(@RequestParam("productId") Long productId, @RequestParam("quantity") Integer quantity);
}
